/**
 * 拼接 URL 路径，自动处理斜杠和查询参数
 * @param parts 要拼接的 URL 部分（可以是字符串、数组或混合）
 * @returns 拼接后的完整 URL
 */
export function url_join(...parts: (string | string[])[]): string {
    // 扁平化参数（处理数组情况）
    const segments = parts
        .flatMap((part) => (typeof part === 'string' ? part.split('/') : part))
        .filter(Boolean) // 移除空字符串

    // 拼接路径并规范化斜杠
    let joinedPath = segments.join('/')

    // 处理协议（如 'https://'）后的双斜杠问题
    if (joinedPath.includes('://')) {
        const [protocol, ...rest] = joinedPath.split('://')
        joinedPath = `${protocol}://${rest.join('/').replace(/\/+/g, '/')}`
    } else {
        joinedPath = joinedPath.replace(/\/+/g, '/')
    }

    // 确保路径开头有斜杠（除非是协议开头的 URL）
    if (!joinedPath.startsWith('http') && !joinedPath.startsWith('/')) {
        joinedPath = `/${joinedPath}`
    }

    return joinedPath
}
